Mono-parametric Tiling is a Polyhedral Transformation

نویسندگان

  • Guillaume Iooss
  • Sanjay Rajopadhye
  • Christophe Alias
  • Yun Zou
چکیده

Tiling is a crucial program transformation with many benefits: it improves locality, exposes parallelism, allows for adjusting the ops-to-bytes balance of codes, and can be applied at multiple levels. Allowing tile sizes to be symbolic parameters at compile time has many benefits, including efficient autotuning, and run-time adaptability to system variations. For polyhedral programs, parametric tiling in its full generality is known to be non-linear, breaking the mathematical closure properties of the polyhedral model. Most compilation tools therefore either avoid it by only performing fixed size tiling, or apply it in only the final, code generation step. Both strategies have limitations. We first introduce mono-parametric partitioning, a restricted parametric, tiling-like transformation which can be used to express a tiling. We show that, despite being parametric, it is a polyhedral transformation. We first prove that applying mono-parametric partitioning (i) to a polyhedron yields a union of polyhedra, and (ii) to an affine function produces a piecewise-affine function. We then use these properties to show how to partition an entire polyhedral program, including one with reductions. Next, we generalize this transformation to tiles with arbitrary tile shapes that can tesselate the iteration space (e.g., hexagonal, trapezoidal, etc). We show how mono-parametric tiling can be applied at multiple levels, and enables a wide range of polyhedral analyses and transformations to be applied. Key-words: Automatic parallelization, polyhedral compilation, tiling ∗ Inria/ENS-Lyon/UCBL/CNRS/Colorado State University † Colorado State University ‡ Inria/ENS-Lyon/UCBL/CNRS § Colorado State University Le tuilage mono-paramétrique est une transformation polyédrique Résumé : Le tuilage est une transformation de programme importante avec de nombreux avantages: il améliore la localité du programme, expose du parallélisme, permet d’ajuster le ratio calcul-communications et peut être appliqué à de multiples niveaux. Avoir des tailles de tuiles paramétrées pendant la compilation est également intéressant: cela permet d’autotuner efficacement le code et de pouvoir s’adapter pendant l’exécution aux changements du système. Dans le contexte des programmes polyédriques, le tuilage paramétrique est connue pour ne pas être linéaire en général, ce qui brise les propriétés mathématiques de clôture du modèle polyédrique. La plupart des compilateurs polyédriques évitent ce problème en n’appliquant que des tuilages à taille fixée, ou en appliquant cette transformation uniquement à la dernière étape, la génération de code. Chaque stratégie a ses limitations. Nous introduisons tout d’abord le partitionnement mono-paramétrique, une transformation similaire à un tuilage dont l’aspect paramétrique est restreint, qui peut être utilisé pour définir un tuilage. Nous montrons que, malgré la paramétrisation des tailles de tuiles, cette transformation est polyédrique. Tout d’abord, nous prouvons qu’appliquer le partitionnement mono-paramétrique (i) à un polyèdre produit une union de polyèdres, et (ii) à une fonction affine produit une fonction affine par morceaux. Nous utilisons ensuite ces propriétés pour montrer comment partitionner un programme polyédrique complet, potentiellement contenant des réductions. Ensuite, nous généralisons cette transformation à des formes de tuiles arbitraires qui pavent l’espace d’itération (par exemple, hexagone, trapézoïde, etc). Nous montrons également comment le tuilage mono-paramétrique peut être appliqué à de multiples niveaux et permet l’application d’analyses et de transformations polyédriques. Mots-clés : Parallélisation automatique, compilation polyédrique, tuilage Mono-parametric Tiling is a Polyhedral Transformation 3

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

CART: Constant Aspect Ratio Tiling

Parametric tiling is a well-known transformation which is widely used to improve locality, parallelism and granularity. However, parametric tiling is also a non-linear transformation and this prevents polyhedral analysis or further polyhedral transformation after parametric tiling. It is therefore generally applied during the code generation phase. In this paper, we present a method to remain p...

متن کامل

Oil and Water can mix! Experiences with integrating Polyhedral and AST-based Transformations

The polyhedral model is an algebraic framework for affine program representations and transformations for enhancing locality and parallelism. Compared with traditional AST-based transformation frameworks, the polyhedral model can easily handle imperfectly nested loops and complex data dependences within and across loop nests in a unified framework. On the other hand, AST-based transformation fr...

متن کامل

Automatic Tiling of “Mostly-Tileable” Loop Nests

Polyhedral compilation techniques have proven to be a powerful tool for optimization of dense array codes. In particular, their ability to tile imperfectly nested loops has provided dramatic speedups by countering limits of memory or network bandwidth. Unfortunately, certain codes, including RNA secondary-structure prediction codes, cannot be tiled effectively using the standard tiling algorith...

متن کامل

International Workshop on Polyhedral Compilation Techniques

The Polyhedral model has proven to be a valuable tool for improving memory locality and exploiting parallelism for optimizing dense array codes. This model is expressive enough to describe transformations of imperfectly nested loops, and to capture a variety of program transformations, including many approaches to loop tiling. Tools such as the highly successful PLuTo automatic parallelizer hav...

متن کامل

On the Scalability of Loop Tiling Techniques

The Polyhedral model has proven to be a valuable tool for improving memory locality and exploiting parallelism for optimizing dense array codes. This model is expressive enough to describe transformations of imperfectly nested loops, and to capture a variety of program transformations, including many approaches to loop tiling. Tools such as the highly successful PLuTo automatic parallelizer hav...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015